This invention relates to data storage systems employing rotating media, and more particularly to an operating system for controlling plural operations of a disc drive system. While the present invention will be described in connection with magnetic disc drive systems employing hard discs, it will be understood that the invention is useful with other types of rotating storage devices.
There are three principal tasks required for operation of a hard disc drive. First, a spindle control task must accurately maintain the speed of the rotating media. Second, an actuator control task must control and maintain the position of the read/write head for track seek and centering functions. Third, a servo control task (which is actually several tasks) must (i) control communications over an interface to another processor or a host, (ii) act as a supervisor and monitor over the actuator and spindle tasks, and (iii) monitor hardware ports for fault conditions. The servo control tasks are event driven; the actuator control task of track centering and the spindle control task are time driven.
Prior disc drive systems employed dedicated processors to handle servo control tasks. Spindle control and actuator control tasks were handled through separate analog circuits. More recently, some disc drive controllers have eliminated the spindle control analog circuits and added a spindle control program to the disc drive controller. The spindle control routine was operated on an interrupt of the servo control routine, so that the servo control program was periodically interrupted to execute a spindle control program. However, there are times when the servo control is performing real time updates to the analog actuator control circuits and cannot be interrupted. Therefore, the interrupt of the servo control for spindle control was not always satisfactory.
Both the servo control routine and the spindle control routine employ idle loops during which the programs are waiting for changes in the hardware. During these times, the processor is performing no other program executions, except for waiting for a bit to change, a timer to time out, or some other change in the hardware.
Attempts have been made to incorporate actuator control tasks into the processor as a digital operation, examples being found in the patents to Squires et al., U.S. Pat. No. 4,979,055 and to Graham et al., U.S. Pat. No. 4,819,153. Each of these patents describes a processor control system in which the servo control routine is interrupted periodically to perform spindle control and/or actuator control functions. More particularly, in the Squires et al. patent, the actuator control, spindle control and read/write control are supported as background tasks to the foreground task of controlling the transfer of data with respect to the host processor. A sector task is composed of sub-tasks, including spindle control, read/write control and actuator control which are initiated during the sector gap prior to the beginning of a servo burst. Timed interrupts during the sector period initiate each of the respective tasks. Hence, Squires et al. achieves multi-tasking operation through a time-based task scheduling of the sector using pre-established interrupts establishing separate time slots for each control function.
One of the difficulties with the interrupt scheme based on interrupting the servo control routine, such as that employed by Squires et al., is that important servo control routines might be interrupted at inopportune times, such as when the servo control is performing a real time update to the actuator control. Further, such a design does not fully utilize the capabilities of the processor. More particularly, if a particular control function, such as the actuator control, is not ready to be executed during its assigned time slot, defined by its interrupt, the processor remains idle for the entire time slot.